UML详解之一 您所在的位置:网站首页 用例图 角色 UML详解之一

UML详解之一

2024-07-11 07:59| 来源: 网络整理| 查看: 265

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/49820783 文章出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货!

用例图

用例视图(User Case View)主要通过用例来描述系统的功能需求,它是系统中与实现无关的视图。用例图(Use Case Diagram)关注的是系统功能的高层形状,而不关注系统的具体实现方法,用例图来描述系统的需求情况直观明了,不管是用户与分析人员,还是分析人员与程序员沟通,使用用例图都可以很好的体现双方的思想 这里写图片描述

组成:系统边界。参与者。用例。关系。 参与者:Actor不是人,而是指参与用例时担当的角色。 如果一个角色的操作是由另一个角色代理完成的,请建立该角色到另外角色之间的依赖。

怎样识别参与者呢?

是谁向系统提供的信息呢.谁向系统获取信息。谁操作系统。系统使用哪些外部资源系统是否和已经存在的系统交互

系统、子系统或类与外部的参与者(actor)交互的动作序列的说明,包括各种序列及出错序列。 用例分析可以认为是对系统功能的分解。

怎样确定用例的粒度呢? 用例的粒度(用例的大小)可大可小,一般一个系统易控制在20个左右。用例是系统级的抽象的描述,不是细化的(是做什么,非怎样做)。对复杂系统可以划分为若干个子系统处理。

怎样获取用例呢?

参与者希望系统执行什么任务?参与者在系统中访问哪些信息(创建、存储、修改、删除等)?需要将外界的哪些信息提供给系统?需要将系统的那个事件告诉参与者?如何维护系统? UML中的四种关系

关联(association)这里写图片描述 包含(include) 这里写图片描述(这个图应该是虚线) 扩展(extend)这里写图片描述

泛化(generalization)这里写图片描述

关联关系

描述参与者和用例之间的关系。 用单向箭头,表示谁启动用例。 每个用例都有角色启动,除了包含和扩展用例。 这里写图片描述

包含

是指两个用例之间的关系。其中一个用例(基本用例,base use case)的行为包含了另一个用例(包含用例,inclusion use case)的行为。

1、如果两个以上用例有大量一致的功能,则可以将这个功能分解到另一个用例中,其他用力拉可以和这个用例建立包含关系。 这里写图片描述

查询、提款和转账三个用例都有一个一致的功能,将这个功能提取出来为一个用例。这三个用例和提取出的这个用例之间是包含的关系。

2、执行基本用例的时候也可以执行被包含的用例,被包含的用例也可以单独执行。 这里写图片描述

3、如果一个用例的功能太多时,可以用包含关系建模成两个或多个小用例

这里写图片描述

扩展

指两个用例之间的关系。 一个用例可以被定义为基础用例的增量的扩展,称作为扩展关系。扩展关系是把新的行为插入到已有的用例中方法。基础用例即使没有扩展用例的执行不会涉及扩展用例,只有在特定的条件发生,扩展用例才被执行。 这里写图片描述

泛化(继承)

一个用例和其几种情形的用例间构成泛化关系。往往父用例表示为抽象用例。 任何父用例出现的地方子用例也可出现。

这里写图片描述 1 、对用例的描述。

用例图:只能描述系统的大概功能,是一种视图。用例描述:更详细地描述用例的功能。

2 、用例描述的组成 用例名称,简要说明/描述,优先级,参与者,前置条件,基本事件流,其他事件流,扩展点,后置条件。

事件流:就是用例执行时,由一序列活动组成的控制流。基本事件流:对用例中常规、预期路径的描述。扩展事件流:主要是对一些异常情况、选择分支进行描述。前置条件:在用例启动时参与者(actor)与系统应置于什么状态。后置条件:用例结束时系统应置于什么状态。 UML中包含、扩展和泛化区别

泛化表示类似于OO术语“继承”或“多态”。 UML中的Use Case泛化过程是将不同Use Case之间的可合并部分抽象成独立的父Use Case,并将不可合并部分单独成各自的子Use Case;

包含、扩展与泛化类似,但三者对用例关系的优化侧重点是不同的。如下:

泛化侧重表示子用例间的互斥性;包含侧重表示被包含用例对Actor提供服务的间接性;扩展侧重表示扩展用例的触发不定性;

详述如下: 既然用例是系统提供服务的UML表述,那么服务这个过程在所有用例场景中是必然发生的,但发生按照发生条件可分为如下两种情况:

⒈无条件发生:肯定发生的;

⒉有条件发生:未必发生,发生与否取决于系统状态;

因此,针对用例的三种关系结合系统状态考虑,

泛化与包含用例属于无条件发生的用例,扩展属于有条件发生的用例。

进一步,用例的存在是为Actor提供服务,但用例提供服务的方式可分为间接和直接两种,

包含中的被包含用例提供的是间接服务。泛化中的子用例提供的是直接服务,扩展用例提供的也是直接服务

另外需要提及的是:泛化中的子用例和扩展中的扩展用例均可以作为基本用例事件的备选择流而存在。

例子

这里写图片描述 以上述的”新增书籍信息”为例,说明如何细化用例描述。

1、用例的概要描述

用例名称:新增书籍(UCO1)简要说明:录入新购书籍信息,并自动存储建档。事件流:基本事件流和扩展事件流。非功能需求前置条件:用户进入图书管理系统。后置条件:完成新书信息的存储建档。扩展点:无优先级:高(满意度 5 ,不满意度5 )

2、详细描述

基本事件流

图书管理员向系统发出”新增书籍信息”请求。系统要求图书管理员选择要增加的书籍是计算机类还是飞信计算接类图书管理员做出选择后,显示相应界面,让图书管理员输入信息,并自动根据书号规则生成书号。图书管理员输入书籍的相关信息,包括:书名、作者、出版社、ISBN号、开本。页数、定价。是否有CD-ROM。系统确认输入的信息中书名没有重名。系统将所输入的信息存档建档。

扩展事件流。

A 如果输入的书名有重名现象,则显示出重名的书籍,并要求图书管理员选择修改书名或取消输入。A(1)图书管理员选择取消输入,则结束用例,不做存储建档工作。A(2)图书管理员选择修改书名后,转到A。

转载:http://blog.csdn.net/z1988316/article/details/7397457 http://xhf123456789plain.blog.163.com/blog/static/172880482201192221826110/ http://www.uml.org.cn/oobject/201007274.asp http://blog.csdn.net/lishehe/article/details/8209560



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有